package leetcode.dynamic;

public class Lc746 {

    public int minCostClimbingStairs(int[] cost) {

        int n = cost.length;
        int[] dp = new int[n + 1]; //dp[i] 表示到大i层需要支付的费用，到达i层不必支付i层的费用，只需要支付从下面上来的费用即可
        dp[0] = 0;
        dp[1] = 0;
        for (int i = 2; i <= n; i++) {
            dp[i] = Math.min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);
        }
        return Math.min(dp[n - 1] + cost[n-1], dp[n]);
    }
}
